/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright(c) 2021 Ramaxel Memory Technology, Ltd */

#ifndef SPNIC_NIC_CMD_H
#define SPNIC_NIC_CMD_H

/* Commands between NIC to MPU
 */
enum spnic_nic_cmd {
	SPNIC_NIC_CMD_VF_REGISTER = 0, /* only for PFD and VFD */

	/* FUNC CFG */
	SPNIC_NIC_CMD_SET_FUNC_TBL = 5,
	SPNIC_NIC_CMD_SET_VPORT_ENABLE,
	SPNIC_NIC_CMD_SET_RX_MODE,
	SPNIC_NIC_CMD_SQ_CI_ATTR_SET,
	SPNIC_NIC_CMD_GET_VPORT_STAT,
	SPNIC_NIC_CMD_CLEAN_VPORT_STAT,
	SPNIC_NIC_CMD_CLEAR_QP_RESOURCE,
	SPNIC_NIC_CMD_CFG_FLEX_QUEUE,
	/* LRO CFG */
	SPNIC_NIC_CMD_CFG_RX_LRO,
	SPNIC_NIC_CMD_CFG_LRO_TIMER,
	SPNIC_NIC_CMD_FEATURE_NEGO,

	/* MAC & VLAN CFG */
	SPNIC_NIC_CMD_GET_MAC = 20,
	SPNIC_NIC_CMD_SET_MAC,
	SPNIC_NIC_CMD_DEL_MAC,
	SPNIC_NIC_CMD_UPDATE_MAC,
	SPNIC_NIC_CMD_GET_ALL_DEFAULT_MAC,

	SPNIC_NIC_CMD_CFG_FUNC_VLAN,
	SPNIC_NIC_CMD_SET_VLAN_FILTER_EN,
	SPNIC_NIC_CMD_SET_RX_VLAN_OFFLOAD,

	/* SR-IOV */
	SPNIC_NIC_CMD_CFG_VF_VLAN = 40,
	SPNIC_NIC_CMD_SET_SPOOPCHK_STATE,
	/* RATE LIMIT */
	SPNIC_NIC_CMD_SET_MAX_MIN_RATE,

	/* RSS CFG */
	SPNIC_NIC_CMD_RSS_CFG = 60,
	SPNIC_NIC_CMD_RSS_TEMP_MGR,
	SPNIC_NIC_CMD_GET_RSS_CTX_TBL,
	SPNIC_NIC_CMD_CFG_RSS_HASH_KEY,
	SPNIC_NIC_CMD_CFG_RSS_HASH_ENGINE,
	SPNIC_NIC_CMD_GET_INDIR_TBL,

	/* DPI/FDIR */
	SPNIC_NIC_CMD_ADD_TC_FLOW = 80,
	SPNIC_NIC_CMD_DEL_TC_FLOW,
	SPNIC_NIC_CMD_GET_TC_FLOW,
	SPNIC_NIC_CMD_FLUSH_TCAM,
	SPNIC_NIC_CMD_CFG_TCAM_BLOCK,
	SPNIC_NIC_CMD_ENABLE_TCAM,
	SPNIC_NIC_CMD_GET_TCAM_BLOCK,
	SPNIC_NIC_CMD_CFG_DPI_TABLE_ID,

	/* PORT CFG */
	SPNIC_NIC_CMD_SET_PORT_ENABLE = 100,
	SPNIC_NIC_CMD_CFG_PAUSE_INFO,

	SPNIC_NIC_CMD_SET_PORT_CAR,
	SPNIC_NIC_CMD_SET_ER_DROP_PKT,

	SPNIC_NIC_CMD_VF_COS,
	SPNIC_NIC_CMD_SETUP_COS_MAPPING,
	SPNIC_NIC_CMD_SET_ETS,
	SPNIC_NIC_CMD_SET_PFC,

	SPNIC_NIC_CMD_TX_PAUSE_EXCP_NOTICE = 118,
	SPNIC_NIC_CMD_INQUIRT_PAUSE_CFG = 119,

	/* MISC */
	SPNIC_NIC_CMD_BIOS_CFG = 120,
	SPNIC_NIC_CMD_SET_FIRMWARE_CUSTOM_PACKETS_MSG,

	/* DFX */
	SPNIC_NIC_CMD_GET_SM_TABLE = 140,
	SPNIC_NIC_CMD_RD_LINE_TBL,

	SPNIC_NIC_CMD_SET_VHD_CFG = 161,

	SPNIC_NIC_CMD_MAX = 256,
};

/* NIC CMDQ MODE */
enum spnic_ucode_cmd {
	SPNIC_UCODE_CMD_MODIFY_QUEUE_CTX = 0,
	SPNIC_UCODE_CMD_CLEAN_QUEUE_CONTEXT,
	SPNIC_UCODE_CMD_ARM_SQ,
	SPNIC_UCODE_CMD_ARM_RQ,
	SPNIC_UCODE_CMD_SET_RSS_INDIR_TABLE,
	SPNIC_UCODE_CMD_SET_RSS_CONTEXT_TABLE,
	SPNIC_UCODE_CMD_GET_RSS_INDIR_TABLE,
	SPNIC_UCODE_CMD_GET_RSS_CONTEXT_TABLE,
	SPNIC_UCODE_CMD_SET_IQ_ENABLE,
	SPNIC_UCODE_CMD_SET_RQ_FLUSH = 10,
	SPNIC_UCODE_CMD_MODIFY_VLAN_CTX,
	SPNIC_UCODE_CMD_DPI_HASH_TABLE,
};

#endif /* SPNIC_NIC_CMD_H */
